package com.htgd.gardenexpo.service;

import com.github.pagehelper.PageInfo;
import com.htgd.gardenexpo.entity.CommonResult;
import com.htgd.gardenexpo.page.MySportsQuery;
import com.htgd.gardenexpo.page.RecommendQuery;
import com.htgd.gardenexpo.vo.RecommendVO;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author: 王秀田
 * @date: 2024/11/11 15:58
 * @description: TODO
 */
public interface CommonService {

    /**
     * 查询 热点推荐（热点，景观地标，智慧运动，展馆展览）
     * @param recommendQuery
     * @return
     */
    List<RecommendVO> getRecommendList(RecommendQuery recommendQuery);

    /**
     * 查询 景观地标
     * @param recommendQuery
     * @return
     */
    List<RecommendVO> getSceneList(RecommendQuery recommendQuery);

    List<RecommendVO> getSceneListById(List<Integer> ids);

    /**
     * 查询 智慧运动
     * @param recommendQuery
     * @return
     */
    List<RecommendVO> getCalendarList(RecommendQuery recommendQuery);

    /**
     * 查询 展馆展览
     * @param recommendQuery
     * @return
     */
    List<RecommendVO>getVenueList(RecommendQuery recommendQuery);

    /**
     * 统计 热点推荐（热点，景观地标，智慧运动，展馆展览）
     * @param recommendQuery
     * @return
     */
    int getRecommendCount(RecommendQuery recommendQuery);

    /**
     * 统计 景观地标
     * @param recommendQuery
     * @return
     */
    int getSceneCount(RecommendQuery recommendQuery);

    /**
     * 统计 智慧运动
     * @param recommendQuery
     * @return
     */
    int getCalendarCount(RecommendQuery recommendQuery);

    /**
     * 统计 展馆展览
     * @param recommendQuery
     * @return
     */
    int getVenueCount(RecommendQuery recommendQuery);

    /**
     * 查询智慧运动
     * @param recommendQuery
     * @return
     */
    CommonResult getSmartSportsList(RecommendQuery recommendQuery);

    Long getSmartSportsCount(RecommendQuery recommendQuery);

    /**
     * 查询用户赛事数据
     * @return
     */
    void getUserSportData(String raceId, String userId);

    PageInfo<HashMap> mySportsList(MySportsQuery mySportsQuery, String openId);

    CommonResult find();
}
